package com.cloudbroker.bcs.platform.ltb.middle.extservice.push;

import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.csvc.push.api.vo.request.*;
import com.cloudbroker.bcs.csvc.push.api.vo.response.*;

/**
 * Created by daibd19671 on 2016/9/11.
 */
public interface PushExtService {
    /**
     * 获取极光绑定信息
     * @return
     */
    TagAliasBack getDeviceTagAlias(DeviceTagAliasVo deviceTagAliasVo);

    /**
     * 更新tag  别名
     */
    HSBCPSBackVO updateDeviceTagAlias (UpdateDeviceTagAliasVo updateDeviceTagAliasVo);

    /**
     * 添加或删除tag
     * @return
     */
    HSBCPSBackVO addRemoveDevicesFromTag(AddRemoveTagVo addRemoveTagVo);

    /**
     * 按tag推送
     */
    PushBack sendAllNotificationWithTag(PushTagVo pushTagVo);

    /**
     * 按别名推送
     */
    PushBack sendAllNotificationWithAlias(PushAliasVo pushAliasVo);
    // 按设备编号推送
    PushBack sendAllNotificationWithRegId(PushRegIdVo pushRegIdVo);
    // 推送所有-广播
    PushBack sendNotificationAll(PushAllVo pushAllVo);

    /**
     * 启用定时推送任务
     */
    HSBCPSBackVO enableSchedulePush(EnableDisableScheduleVo form);
    /**
     * 禁用定时推送任务
     */
    HSBCPSBackVO disableSchedulePush(EnableDisableScheduleVo form);
    /**
     * 修改定时推送内容
     */
    HSBCPSBackVO updateSchedulePush(UpdateScheduleVo form);

    PushReportBack getPushReport(PushReportVo pushReportVo);
}
